package com.twentytwok.hospitalsystem22K.controller;

import com.twentytwok.hospitalsystem22K.common.Code;
import com.twentytwok.hospitalsystem22K.common.R;
import com.twentytwok.hospitalsystem22K.pojo.AdminUser;
import com.twentytwok.hospitalsystem22K.service.AdminUserService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;

/**
 * 管理员的controller界面
 *
 * @author Yuanao
 * @data 2021年11月8日20:22:52
 */
@Controller
@RequestMapping("/api/adminUser")
@CrossOrigin("*")
@ResponseBody
public class AdminUserController {

    @Resource
    private AdminUserService adminUserService;


    /**
     * 管理员登录
     *
     * @param name     管理员用户名
     * @param password 管理员密码,MD5加密后的
     * @return 返回JSON
     */
    @RequestMapping("/login")
    public R login(@RequestParam String name, @RequestParam String password,@RequestParam String code){

        //TODO 验证码验证

        AdminUser adminUser = adminUserService.login(name, password);

        //登录成功
        if (adminUser != null) {
            return new R(Code.OK, "登录成功",adminUser);
        }

        return new R(Code.ERROR, "用户名或密码错误");

    }

    /**
     * 获取所有管理员信息
     * @param page 当前页
     * @param limit 每页的数量
     * @param name 模糊查询信息
     * @return 返回JSON
     */
    @RequestMapping("/getUsers")
    public R getUsers(@RequestParam Integer page,@RequestParam Integer limit,String name) {
        return adminUserService.getUsers(page,limit, name);
    }

    /**
     * 更具指定的id获取管理员信息
     *
     * @param id id号
     * @return 返回JSON
     */
    @RequestMapping("/getUser")
    public R getUser( @RequestParam Integer id) {
        return adminUserService.getUser(id);
    }

    /**
     * 添加用户
     * @param adminUser 前端传输里的字段
     * @return 返回json
     */
    @RequestMapping("/addUser")
    public R addUser(AdminUser adminUser) {
        ///TODO 添加重名的用户时会报500
        return adminUserService.addUser(adminUser);
    }


    /**
     * 修改管理员信息
     * 必须包含id 属性
     *
     * @param adminUser 修改后的信息
     * @return 返回json
     */
    @RequestMapping("/modifyUser")
    public R modifyUser(AdminUser adminUser) {

        return adminUserService.modifyUser(adminUser);
    }


    /**
     * 删除用户
     * @data 2021年11月10日09:45:36
     *
     * @param id 管理员的id
     * @return 返回JSON
     */
    @RequestMapping("/deleteUser")
    public R deleteUser(Integer id) {
        return adminUserService.deleteUser(id);
    }




}
